Skip to main content

Regras do Fork

Pull

Conectores e blocos

  • Exclusão de conector e bloco.

    • Caso conector tenha sido criado na main e venha na criação do fork.

      • CRIA FORK > APAGA CONECTOR NA MAIN > FAZ PULL.
      • Resultado: deve apagar o conector/bloco.
    • Caso conector seja excluído no fork e exista na main.

      • CRIA FORK > EXCLUI CONECTOR NO FORK > FAZ PULL.
      • Resultado: deve recriar o conector/bloco dentro do fork.
  • Criação de conector e bloco.

    • Caso conector/bloco tenha sido criado no fork.
      • CRIA FORK > CRIA CONECTOR OU BLOCO NO FORK > FAZ PULL.
      • Resultado: não deve apagar o conector e caso exista um conector na main, ele deve ficar com dois conectores e ao fazer merge, deve aparecer o modal de duplo conector.
      • Resultado: não deve apagar o bloco.
  • Conectores Duplicados.

    • Caso tenha conector duplicado na origem.
      • Excluir conector de condicional > Coloca conector no bloco condicional > faz o pull no fork alterado> faz o merge com outro fork > tela de conector duplos > mergiar.
      • Resultado: no destino, não será duplicado o conector, mesmo o usuário aceitando que possui item duplicado.

Merge Fork x Main

Blocos e Conectores
  • Ao mergiar o fork com a main, a main deverá ficar idêntica ao fork salvo algumas exceções:
    • Case 1
      • Se houver algum bloco criado diretamente dentro da main depois que o fork tenha sido criado, esse bloco não deve ser apagado, ou seja, o merge irá jogar o fork para main e manter os blocos e conectores que foram criados na main.
    • Case 2
      • Se eu tiver 2 forks, mergiar o primeiro e depois mergiar o segundo sem fazer o pull, a main ficará exatamente igual ao segundo, caso o segundo esteja faltando algo vai subir errado pra main, sendo assim, O usuário deve se atentar para sempre fazer um pull antes de fazer o merge do fork.
Cases
  1. Cria fork > Altera main > Faz pull > Altera fork > Merge main.

    • Não deve dar conflito.
  2. Cria fork > Altera main > Faz pull > Merge main.

    • Não pode ter alteração.
  3. Cria fork > Altera main > Merge Main.

    • Tem que ter conflito.
  4. Cria fork > Altera main > Altera fork > Merge main.

    • Tem que ter conflito.
  5. Cria fork > Altera fork - Merge main.

    • Não tem conflito.
  6. Cria fork > Altera main > Faz pull > Altera fork > Merge com outro fork.

    • Tem que ter conflito.
  7. Cria fork > Altera main > Faz pull > Altera fork com bloco novo > Altera fork com bloco existente > Merge com outro fork.

    • Tem que ter conflito.

Merge Fork x Fork

Blocos e Conectores
  • Criação e exclusão de conector e bloco
    • Ao realizar o merge esses valores serão levados para os outros forks, com isso, evitamos a duplicação de blocos e conectores ao mergiar entre forks pois conseguimos comparar se o bloco origem tem o mesmo originalId do destino.
    • Outra regra é que blocos e conectores criados dentro do próprio fork nunca deverão ser excluídos ao receberem merges de outros forks.
    • Ponto importante é que após realizar o merge com a Main, caso o usuário crie um novo fork, os blocos desse fork irão perder as referências com os forks que ainda não foram mergiados, com isso caso haja um merge entre o fork novo e outros existentes irá ocorrer duplicação de blocos e conectores.

Compare

  • Exclusão de conectores
    • Não contabilizada, sendo assim, se a pessoa fizer merge apenas excluindo o conector não irá contabilizar, ficando com "0 alterações".
  • Criação de conector.
    • Caso o conector for adicionado, é para contabilizar.